package me.dao.impl;

import me.dao.AdminDao;
import me.domain.Admin;
import me.util.DBManager;
import org.springframework.context.annotation.Scope;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 实际管理数据库交互的底层类
 *
 * @author Rainh
 */
@Repository(value = "adminDao")
@Scope(value = "prototype")
public class AdminDaoImpl implements AdminDao {

    //实例化JdbcTemplate对象
    private JdbcTemplate jdbcTemplate = new JdbcTemplate(DBManager.getDataSource());

    /**
     * 通过账号和密码查询一下是否存在该记录
     * @param account
     * @param password
     * @return
     */
    @Override
    public boolean queryByAccountAndPassword(String account,String password) {

        //定义sql语句
        String sql = " select account,password from tab_admin where account = ? and password = ? ";

        try {
            //执行sql语句，并且把参数也放进去
            List<Admin> adminList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Admin>(Admin.class), account, password);
            //如果不报错，而且不为空，就说明存在
            if(adminList!=null&&adminList.size()!=0){
                return true;
            }
        } catch (Exception e) {
            //如果保存了，很显然不存在，不要打印错误信息，直接返回false
            //为什么不打印，因为如果登陆失败，可能是会报错的，不必打印
//            e.printStackTrace();

        }
        return false;
    }

}
